public class test4 {
    //力扣  904 水果成篮
    public static void main(String[] args) {

    }

    public int totalFruit(int[] fruits) {
        int n = fruits.length;
        int[] hash = new int[n+1];

        int left = 0 ;
        int right =0;
        int ret =0;
        int kinds = 0;//记录水果的种类
        for(;right<n;right++){

            int in = fruits[right];
            //获取种类的数量
            if(hash[in]==0){
                kinds++;
            }
            //进窗口
            hash[in]++;
            //判断条件
            while (kinds>2){
                //出窗口
                int out = fruits[left];
                hash[out]--;
                //需要判断是否已全部出完
                if(hash[out]==0){
                    kinds--;
                }
                //出窗口
                left++;

            }
            //更新结果
            ret = Math.max(ret,right-left+1);
        }
        return ret;
    }
}
